Шаг 8. Сбрасываем коммиты с использованием жёсткого режима

Опция --hard отвечает за жёсткий режим. Мы уже успели с ней поработать, когда с её помощью отменяли изменения. А теперь будем удалять ещё и коммит.

Сначала выведем два последних коммита с помощью команды git log --oneline -2.

Введена команда git log --oneline -2
Введена команда git log --oneline -2

После этого удалим коммит с хэшем 195dfb0. Для этого пропишем команду git reset --hard 1ec11bf.

Введена команда git reset --hard 1ec11bf
Введена команда git reset --hard 1ec11bf

Вместе с коммитом исчезли изменения, но так было и в прошлые разы, когда мы использовали --mixed и --soft. Теперь введём команду git status, чтобы убедиться в том, что изменения полностью отменены.

Введена команда git status
Введена команда git status

Git не выдал изменённых файлов. Это означает, что мы стёрли и коммит, и содержащиеся в нём изменения.

В этой демонстрации мы удаляли также коммиты, которые были отправлены в удалённый репозиторий. В рабочем проекте так лучше не делать. Если мы сейчас попробуем выполнить команду git push, то Git выдаст ошибку, так как сначала нужно затянуть изменения с удалённого репозитория, а потом уже что-то отправлять. Можно использовать опцию --force вместе с git push, но это плохая практика, прибегать к ней можно лишь тогда, когда вы уверены в своих действиях. Если это ваш проект и никто больше в нём не работает, то можно использовать данную комбинацию, если это действительно нужно.

Поэтому сейчас мы затянем изменения с удалённого репозитория, чтобы сравнять ветки. Для этого введём команду git pull.

Введена команда git pull
Введена команда git pull

Изменения затянуты с использованием режима fast-forward. У нас снова появились элементы <header> и <ul>.